/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package muhnes.sizoo.controlador;

import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;
import muhnes.sizoo.dal.DepartamentoDao;
import muhnes.sizoo.dal.DepartamentoDaoImpl;
import muhnes.sizoo.modelo.Departamento;

@ManagedBean(name = "departamentoBean")
@ViewScoped
public class DepartamentoBean implements Serializable {

    /**
     * Creates a new instance of DepartamentoBean
     */
     private Departamento departamento;
    private List<Departamento> listaDepartamentos;
    
    public DepartamentoBean() {
        DepartamentoDao dao = new DepartamentoDaoImpl();
        departamento = new Departamento();
        listaDepartamentos = dao.buscarTodos();
    }
    
     public Departamento getDepartamento() {
        return departamento;
    }

    public void setDepartamento(Departamento departamento) {
        this.departamento = departamento;
    }

    public List< Departamento > getListaDepartamentos() {
        if( listaDepartamentos == null ) {
            DepartamentoDao dao = new DepartamentoDaoImpl();
            listaDepartamentos = dao.buscarTodos();
        }
        return listaDepartamentos;
    }
    
    public void prepararAdicion( ActionEvent event  ){
        departamento = new Departamento();
    }
    
    public void prepararModificacion( Departamento departamento ){
        this.departamento = departamento;
    }

    public void prepararEliminacion( Departamento departamento ){
        this.departamento = departamento;
    }
    
    public void agregarDepartamento( ActionEvent event ){
        DepartamentoDaoImpl dao = new DepartamentoDaoImpl();
       // departamento.setContrasenya( "12345" );
        departamento.setHabilitado( Boolean.TRUE );
        dao.guardar( departamento );
        recrearLista();
    }

    public void actualizarDepartamento( ActionEvent event ){
        DepartamentoDaoImpl dao = new DepartamentoDaoImpl();
        dao.actualizar( departamento );
        recrearLista();
    }
    
    public void eliminarDepartamento( ActionEvent event ){
        DepartamentoDaoImpl dao = new DepartamentoDaoImpl();
        dao.eliminar( departamento );
        recrearLista();
    }
    
//    public List< Departamento > getTrabajadores() {
//        DepartamentoDao dao = new DepartamentoDaoImpl();
//        return dao.buscarTodos();
//    }
    
   /* public List< Rol > getRoles() {
        RolDao dao = new RolDaoImpl();
        return dao.buscarTodos();
    }*/
    
    void recrearLista() {
        listaDepartamentos = null;
    }

    
    
    
}// Fin de la clase.
